package com.zhangzhan.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zhangzhan.domain.commcon.ResponseResult;
import com.zhangzhan.domain.dto.PageUserDto;
import com.zhangzhan.domain.dto.SaveUserDto;
import com.zhangzhan.domain.dto.UpdateUserDto;
import com.zhangzhan.domain.dto.UserChangeStatusDto;
import com.zhangzhan.domain.entity.User;
import com.zhangzhan.domain.vo.PageVO;
import com.zhangzhan.domain.vo.UpdateUserRoleVO;
import com.zhangzhan.domain.vo.UserInfoVo;


/**
 * 用户表(User)表服务接口
 *
 * @author makejava
 * @since 2022-09-19 21:28:35
 */
public interface UserService extends IService<User> {

    /**
     * @description 查询用户信息
     * @param
     * @return com.zhangzhan.domain.commcon.ResponseResult
     * @author 31115
     * @date 2022/12/3 16:34
     */
    ResponseResult selectUserInfo();

    ResponseResult putUserInfo(UserInfoVo userInfoVo);

    /**
     * @description 注册
     * @param user
     * @return com.zhangzhan.domain.commcon.ResponseResult
     * @author 31115
     * @date 2022/12/4 16:15
     */
    ResponseResult saveRegister(User user);

    //分页查询
    ResponseResult<PageVO> userPage(Integer pageNum, Integer pageSize, PageUserDto pageUserDto);

    //新增用户
    ResponseResult saveUser(SaveUserDto dto);

    //批量删除
    ResponseResult deleteByIds(Long[] ids);

    //根据id查询用户信息回显接口
    ResponseResult<UpdateUserRoleVO> selectById(Long id);

    //更新用户信息
    ResponseResult updateUser(UpdateUserDto dto);

    //修改用户状态
    ResponseResult changeStatus(UserChangeStatusDto dto);
}

